<!-- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> -->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="Author" content="Julius Davies">
<title>Java and SSL/TLS Made Easier - Not-Yet-Commons-SSL</title>
<meta name="description" content="Java library for controlling aspects of SSL.  Also helps interop between Java and OpenSSL."/>
<meta name="keywords" content="Java, SSL, TLS, OpenSSL, HTTPS, Certificates, X.509, X509, Secure Socket Layer, Transport Layer Security, Client Auth, Client Certificate, Client Cert, Client Certificates, Server Cert, Server Certificate, Server Certificates"/>
<style type="text/css">
dl, h1, h2, h3, h4 { margin: 0; border: 0; padding: 0; font-size: 100%; }
h1 { float: left; color: red; }
b.n { font-family: arial; font-weight: bold; }
span.hl { color: white; background-color: green; }
div.nav { float: left; margin-left: 20px; font-weight: bold; }
.nav a, .nav span { padding: 0 5px; }
.nav a { color: blue; }
dt { padding: 8px 0 8px 5px; }
li { padding-bottom: 6px; }
th { text-align: right; }
</style>
</head>
<body>
<h1>not-yet-commons-ssl</h1>
<div class="nav">
<span class="hl">main</span> |

<a href="ssl.html">ssl</a> |
<a href="pkcs8.html">pkcs8</a> |
<a href="pbe.html">pbe</a> |
<a href="rmi.html">rmi</a> |
<a href="utilities.html">utilities</a> |
<a href="source.html">source</a> |

<a href="javadocs/">javadocs</a> |
<a href="download.html">download</a>
</div>
<br clear="all"/>
<hr/>
<h2>Not-Yet-Commons-SSL</h2>
<p><a href="download.html">not-yet-commons-ssl-0.3.17</a> released! (March 16th, 2015)</p>
<p>Requires Java 1.5.x or higher.

<p>Please see our <a href="ssl.html">ssl page</a> for code examples on how to use this library.</a></p>

<h3>Resources:</h3>
<table border="0" cellpadding="5" cellspacing="5">
<tr>
    <th>Design Goals:</th>
    <td><a href="about.html">about.html</a></td>
</tr>

<tr>
    <th>Code Examples:</th>
    <td><a href="ssl.html">SSL/TLS</a> &nbsp;|&nbsp; <a href="pkcs8.html">PKCS #8</a> &nbsp;|&nbsp; <a href="pbe.html">PBE</a></td>
</tr>
<tr>

    <th>Join Mailing List:</th>
    <td><a href="http://lists.juliusdavies.ca/listinfo.cgi/not-yet-commons-ssl-juliusdavies.ca/">http://lists.juliusdavies.ca/listinfo.cgi/not-yet-commons-ssl-juliusdavies.ca/</a></td>
</tr>
<tr>
    <th>Mailing&nbsp;List&nbsp;Archives:</th>
    <td><a href="http://lists.juliusdavies.ca/pipermail/not-yet-commons-ssl-juliusdavies.ca/">http://lists.juliusdavies.ca/pipermail/not-yet-commons-ssl-juliusdavies.ca/</a></td>
</tr>    

<tr>
    <th>Downloads:</th>
    <td><a href="download.html">http://juliusdavies.ca/commons-ssl/download.html</a></td>
</tr>
<tr>
    <th>Checkout&nbsp;From&nbsp;Subversion:</th>
    <td><code>svn&nbsp;co&nbsp;<a style="text-decoration: none;" href="http://juliusdavies.ca/svn/not-yet-commons-ssl/trunk">http://juliusdavies.ca/svn/not-yet-commons-ssl/trunk</a>&nbsp;not-yet-commons-ssl</code></td>

</tr>
<tr>
    <th>Browse&nbsp;Subversion&nbsp;(via&nbsp;viewvc):</th>
    <td><a href="http://juliusdavies.ca/svn/viewvc.cgi/not-yet-commons-ssl/">http://juliusdavies.ca/svn/not-yet-commons-ssl/viewvc.cgi/not-yet-commons-ssl/</a></td>
</tr>
<tr>
    <th>License (Apache 2.0 + BouncyCastle.org's MIT license):</th>
    <td><a href="LICENSE.txt">LICENSE.txt</a></td>

</tr>
</table>
<hr/>
<h4>About</h4>
<p>We're calling this library "Not-Yet-Commons-SSL" since we have the intention of one day
becoming an official Apache project.  Not-Yet-Commons-SSL was originally developed by
<a href="https://www.cucbc.com">Credit Union Central of British Columbia</a>.
The webpages, releases, and code here on <a href="http://juliusdavies.ca/">juliusdavies.ca</a> have no relationship to
the Apache Software Foundation, but all code is licensed under <a href="LICENSE.txt">ASL 2.0</a>.
</p>
<p>The <a href="http://juliusdavies.ca/svn/viewvc.cgi/trunk/src/java/org/apache/commons/ssl/asn1/">ASN.1 parsing code</a>

comes directly from BouncyCastle (<a href="http://bouncycastle.org/">bouncycastle.org</a>).  Our only modification to this
code was an accidental "reformat" to bring it inline with our code style.  Also, in two places, we switched the BC code
to use <em>our</em> Hex.java
for encoding/decoding instead of their own.
The PKCS12 key derivation function (for some PKCS8 version 1.5 encrypted keys) also comes from BouncyCastle.
Presumably they  got it from RSA's PKCS12 specification
(<a href="ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-12/pkcs-12v1.pdf">ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-12/pkcs-12v1.pdf</a>).
BouncyCastle maintains copyright over all the code used, but allows us to reuse and redistribute
(the BouncyCastle license is compatible with ASL 2.0).  We are very thankful for their excellent code.
</p>

<p>Not-Yet-Commons-SSL would never have happened without Oleg Kalnichevski's excellent
"<a href="http://svn.apache.org/viewvc/jakarta/httpcomponents/oac.hc3x/trunk/src/contrib/org/apache/commons/httpclient/contrib/ssl/">contrib</a>"
example in the <a href="http://jakarta.apache.org/httpcomponents/">HttpComponents</a> SVN repository.
His
<a href="http://svn.apache.org/viewvc/jakarta/httpcomponents/oac.hc3x/trunk/src/contrib/org/apache/commons/httpclient/contrib/ssl/AuthSSLProtocolSocketFactory.java?view=markup">AuthSSLProtocolSocketFactory.java</a>

and
<a href="http://svn.apache.org/viewvc/jakarta/httpcomponents/oac.hc3x/trunk/src/contrib/org/apache/commons/httpclient/contrib/ssl/AuthSSLX509TrustManager.java?view=markup">AuthSSLX509TrustManager.java</a>
examples
were the seeds for all of this.  Evil Comrade Oleg's Javadocs on those classes were also extremely helpful.  We
only one day hope that we can write Javadocs like that (hopefully by <a href="download.html#roadmap">0.7.0</a>!).
</p>
</body>
</html>
